#include <iostream>


// 饿汉模式
// class Singleton
// {
// private:
//     static Singleton _eton;
//     Singleton(const Singleton&) = delete;
//     Singleton():_data(99)
//     {
//         std::cout << "单例对象构造" << std::endl;
//     }
//     ~Singleton()
//     {}
// private:
//     int _data;
// public:
//     static Singleton& getInstance()
//     {
//         return _eton;
//     }
//     int getData()
//     {
//         return _data;
//     }
// };
// Singleton Singleton::_eton;

// 懒汉模式

class Singleton
{
private:
    Singleton():_data(99)
    {
        std::cout << "单例构造" << std::endl;
    }
    Singleton(const Singleton&) = delete;
    ~Singleton() {};
private:
    int _data;
public:
    static Singleton& getInstance()
    {
        static Singleton _eton;
        return _eton;
    }
};

int main()
{
    // std::cout << Singleton::getInstance().getData() << std::endl;
    return 0;
}